package com.reddate.wuhanddc.constant;

import com.reddate.wuhanddc.dto.config.DDCContract;

import java.util.ArrayList;
import java.util.List;

/**
 * @author wxq
 * @create 2022/1/22 15:48
 * @description contract
 */
public class ContractConfig {
    public static List<DDCContract> DDCContracts = new ArrayList<>();

    /**
     * authority contract info
     */
    public static final String AUTHORITY_ADDRESS = "0x466D5b0eA174a2DD595D40e0B30e433FCe6517F5";
    public static final String AUTHORITY_ABI = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddAccount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IAuthority.Role\",\"name\":\"role\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"}],\"name\":\"AddFunction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"CrossPlatformApproval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IAuthority.Role\",\"name\":\"role\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"}],\"name\":\"DelFunction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IAuthority.State\",\"name\":\"platformState\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IAuthority.State\",\"name\":\"operatorState\",\"type\":\"uint8\"}],\"name\":\"UpdateAccountState\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accountAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"accountName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"accountDID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"leaderDID\",\"type\":\"string\"}],\"name\":\"addAccountByOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IAuthority.Role\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"}],\"name\":\"addFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"accountName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"accountDID\",\"type\":\"string\"}],\"name\":\"addOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"enum IAuthority.Role\",\"name\":\"role\",\"type\":\"uint8\"}],\"name\":\"checkAvailableAndRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"crossPlatformApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"crossPlatformCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IAuthority.Role\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"}],\"name\":\"delFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getAccount\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"enum IAuthority.Role\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"enum IAuthority.State\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum IAuthority.State\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IAuthority.Role\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"getFunctions\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"}],\"name\":\"hasFunctionPermission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"acc1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"acc2\",\"type\":\"address\"}],\"name\":\"onePlatformCheck\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"enum IAuthority.State\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"changePlatformState\",\"type\":\"bool\"}],\"name\":\"updateAccountState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]";
    public static final String AUTHORITY_BIN = "60a0604052306080523480156200001557600080fd5b50600054610100900460ff168062000030575060005460ff16155b620000985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000bb576000805461ffff19166101011790555b8015620000ce576000805461ff00191690555b5060805161346762000100600039600081816107b4015281816107f401528181610ae50152610b2501526134676000f3fe6080604052600436106101145760003560e01c806395c2a8d9116100a0578063e3f00c3a11610064578063e3f00c3a146102e2578063ed5cad6414610302578063f2fde38b14610322578063faf3c53f14610342578063fbcbc0f11461036257600080fd5b806395c2a8d914610235578063a6ff8f0c14610255578063b50f1a5e14610275578063bac7ad52146102a2578063e1576897146102c257600080fd5b8063470cf0e0116100e7578063470cf0e0146101b05780634f1ef286146101d0578063715018a6146101e35780638129fc1c146101f85780638da5cb5b1461020d57600080fd5b806301843caa1461011957806305e847fb1461014e5780633659cfe6146101705780633a723d1714610190575b600080fd5b34801561012557600080fd5b50610139610134366004612c46565b610395565b60405190151581526020015b60405180910390f35b34801561015a57600080fd5b5061016e610169366004612c89565b6105a3565b005b34801561017c57600080fd5b5061016e61018b366004612ccc565b6107a9565b34801561019c57600080fd5b506101396101ab366004612c46565b610872565b3480156101bc57600080fd5b506101396101cb366004612cff565b610a0f565b61016e6101de366004612dc5565b610ada565b3480156101ef57600080fd5b5061016e610b94565b34801561020457600080fd5b5061016e610bca565b34801561021957600080fd5b506033546040516001600160a01b039091168152602001610145565b34801561024157600080fd5b50610139610250366004612ccc565b610c45565b34801561026157600080fd5b5061016e610270366004612e36565b610c72565b34801561028157600080fd5b50610295610290366004612e54565b610e25565b6040516101459190612e70565b3480156102ae57600080fd5b5061016e6102bd366004612ebe565b610f14565b3480156102ce57600080fd5b5061016e6102dd366004612f10565b611338565b3480156102ee57600080fd5b5061016e6102fd366004612f84565b6113d5565b34801561030e57600080fd5b5061013961031d36600461301d565b611422565b34801561032e57600080fd5b5061016e61033d366004612ccc565b61147d565b34801561034e57600080fd5b5061016e61035d366004612e36565b611515565b34801561036e57600080fd5b5061038261037d366004612ccc565b6118d0565b60405161014597969594939291906130cd565b6000806103a184611c34565b90506103b08160200151611f55565b6103b981611f73565b60006103c484611c34565b90506103d38160200151611f55565b6103dc81611f73565b6001826040015160028111156103f4576103f46130a3565b1480156104165750600181604001516002811115610414576104146130a3565b145b15610480576060808201519083015161042e91611fdd565b80156104775750815160405160cc9161044691613158565b908152604051908190036020018120825190916104639190613158565b9081526040519081900360200190205460ff165b9250505061059d565b600182604001516002811115610498576104986130a3565b1480156104ba57506002816040015160028111156104b8576104b86130a3565b145b156104f057815160405160cc916104d091613158565b908152602001604051809103902081606001516040516104639190613158565b600282604001516002811115610508576105086130a3565b14801561052a5750600181604001516002811115610528576105286130a3565b145b156105435760cc82606001516040516104469190613158565b60028260400151600281111561055b5761055b6130a3565b14801561057d575060028160400151600281111561057b5761057b6130a3565b145b156105965760cc82606001516040516104d09190613158565b6000925050505b92915050565b6105ad600061207e565b6105b6836120e6565b6105bf826120e6565b60006105ca84611c34565b90506105d98160200151611f55565b6105e281611f73565b60006105ed84611c34565b90506105fc8160200151611f55565b61060581611f73565b60018260400151600281111561061d5761061d6130a3565b14801561063f575060018160400151600281111561063d5761063d6130a3565b145b6106a05760405162461bcd60e51b815260206004820152602760248201527f417574686f726974793a426f7468206d7573742062652060706c6174666f726d6044820152666020726f6c657360c81b60648201526084015b60405180910390fd5b805182516106ad91611fdd565b1561070f5760405162461bcd60e51b815260206004820152602c60248201527f417574686f726974793a426f746820617265207468652073616d6520706c617460448201526b199bdc9b481858d8dbdd5b9d60a21b6064820152608401610697565b8260cc83600001516040516107249190613158565b908152604051908190036020018120835190916107419190613158565b90815260405160209181900382018120805460ff19169315159390931790925584151582526001600160a01b0386811692908816917f944da3aaddcf895695572377f73f4b10c3822d1ea336c5d59f364f3e5e1b121891015b60405180910390a35050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107f25760405162461bcd60e51b815260040161069790613174565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610824612135565b6001600160a01b03161461084a5760405162461bcd60e51b8152600401610697906131c0565b61085381612163565b6040805160008082526020820190925261086f9183919061218d565b50565b60008061087e84611c34565b905061088d8160200151611f55565b61089681611f73565b60006108a184611c34565b90506108b08160200151611f55565b6108b981611f73565b6001826040015160028111156108d1576108d16130a3565b1480156108f357506001816040015160028111156108f1576108f16130a3565b145b1561091f576060808201519083015161090b91611fdd565b801561047757508051825161047791611fdd565b600182604001516002811115610937576109376130a3565b1480156109595750600281604001516002811115610957576109576130a3565b145b1561096e576060810151825161047791611fdd565b600282604001516002811115610986576109866130a3565b1480156109a857506001816040015160028111156109a6576109a66130a3565b145b156109bd576060820151815161047791611fdd565b6002826040015160028111156109d5576109d56130a3565b1480156109f757506002816040015160028111156109f5576109f56130a3565b145b15610596576060808201519083015161047791611fdd565b600080610a1b85611c34565b9050610a2a8160200151611f55565b610a3381611f73565b610a3c846120e6565b610a45836122d1565b6000610a55826040015186612320565b9050600060ca600084604001516002811115610a7357610a736130a3565b6002811115610a8457610a846130a3565b81526020019081526020016000208281548110610aa357610aa361320c565b600091825260208083206001600160e01b0319891684526002600390930201919091019052604090205411925050505b9392505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610b235760405162461bcd60e51b815260040161069790613174565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b55612135565b6001600160a01b031614610b7b5760405162461bcd60e51b8152600401610697906131c0565b610b8482612163565b610b908282600161218d565b5050565b6033546001600160a01b03163314610bbe5760405162461bcd60e51b815260040161069790613222565b610bc860006123fd565b565b600054610100900460ff1680610be3575060005460ff16155b610bff5760405162461bcd60e51b815260040161069790613257565b600054610100900460ff16158015610c21576000805461ffff19166101011790555b610c2961244f565b610c316124b6565b801561086f576000805461ff001916905550565b600080610c5183611c34565b9050610c608160200151611f55565b610c6981611f73565b50600192915050565b610c7c600061207e565b610c85826120e6565b610c8e816122d1565b600060ca6000856002811115610ca657610ca66130a3565b6002811115610cb757610cb76130a3565b8152602001908152602001600020610ccf8585612320565b81548110610cdf57610cdf61320c565b600091825260208083206001600160e01b0319861684526002600390930201918201905260409091205490915080610d595760405162461bcd60e51b815260206004820152601f60248201527f417574686f726974793a66756e6320646f6573206e6f74206578697374732e006044820152606401610697565b6000600180840190610d6b90846132bb565b81548110610d7b57610d7b61320c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c0217905550816002016000846001600160e01b0319166001600160e01b031916815260200190815260200160002060009055846002811115610dea57610dea6130a3565b336001600160a01b03167ffd7321e06212c7e20cb40ffe695d160cb669329e947bbcab975e41e985153417868660405161079a9291906132d2565b6060610e30826120e6565b60ca6000846002811115610e4657610e466130a3565b6002811115610e5757610e576130a3565b8152602001908152602001600020610e6f8484612320565b81548110610e7f57610e7f61320c565b9060005260206000209060030201600101805480602002602001604051908101604052809291908181526020018280548015610f0757602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610ec95790505b5050505050905092915050565b600080610f208561251d565b91509150610f2d81611f73565b610f3782826125e2565b80610f575750600081604001516002811115610f5557610f556130a3565b145b610fb55760405162461bcd60e51b815260206004820152602960248201527f417574686f726974793a204163636f756e74277320726f6c6520646f6573206e6044820152686f74206d617463682160b81b6064820152608401610697565b600281604001516002811115610fcd57610fcd6130a3565b14156110135760405162461bcd60e51b8152602060048201526015602482015274417574686f726974793a2077726f6e6720726f6c6560581b6044820152606401610697565b60008160400151600281111561102b5761102b6130a3565b14156111525782156110ae57836001811115611049576110496130a3565b8260800151600181111561105f5761105f6130a3565b141561107d5760405162461bcd60e51b8152600401610697906132f5565b60808201846001811115611093576110936130a3565b908160018111156110a6576110a66130a3565b9052506111e3565b8360018111156110c0576110c06130a3565b8260a0015160018111156110d6576110d66130a3565b141561113c5760405162461bcd60e51b815260206004820152602f60248201527f417574686f726974793a204f70657261746f72537461746520646f65736e277460448201526e206e65656420746f206368616e676560881b6064820152608401610697565b60a08201846001811115611093576110936130a3565b60018160400151600281111561116a5761116a6130a3565b14156111e357836001811115611182576111826130a3565b82608001516001811115611198576111986130a3565b14156111b65760405162461bcd60e51b8152600401610697906132f5565b608082018460018111156111cc576111cc6130a3565b908160018111156111df576111df6130a3565b9052505b6001600160a01b038516600090815260c960209081526040909120835180518593611212928492910190612b56565b50602082810151805161122b9260018501920190612b56565b5060408201518160020160006101000a81548160ff02191690836002811115611256576112566130a3565b021790555060608201518051611276916003840191602090910190612b56565b50608082015160048201805460ff191660018381811115611299576112996130a3565b021790555060a082015160048201805461ff0019166101008360018111156112c3576112c36130a3565b021790555060c082015180516112e3916005840191602090910190612b56565b505050608082015160a08301516040516001600160a01b038816927f3a99d1f905eb66fd0850dd6e2156668b6ae1f16f41cd49dd7c6d4fb5147f784f9261132992613344565b60405180910390a25050505050565b6033546001600160a01b031633146113625760405162461bcd60e51b815260040161069790613222565b80516113b05760405162461bcd60e51b815260206004820152601f60248201527f417574686f726974793a204449442063616e6e6f7420626520656d70747921006044820152606401610697565b6113b9826125f6565b6113c283612654565b6113d08382838560006126ba565b505050565b6113df600061207e565b6113e8836125f6565b6113f184612654565b805160029061140e57600061140533611c34565b51925060019150505b61141b85848487856126ba565b5050505050565b60008061142e84611c34565b905061143d8160200151611f55565b61144681611f73565b826002811115611458576114586130a3565b60ff1681604001516002811115611471576114716130a3565b60ff1614949350505050565b6033546001600160a01b031633146114a75760405162461bcd60e51b815260040161069790613222565b6001600160a01b03811661150c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401";

    /**
     * charge contract info
     */
    public static final String CHARGE_ADDRESS = "0xCa97bF3a19403805d391102908665b16B4d0217C";
    public static final String CHARGE_ABI = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"}],\"name\":\"DelDDC\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"}],\"name\":\"DelFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"Pay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Recharge\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"}],\"name\":\"SetFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"accAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Settlement\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accAddr\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"}],\"name\":\"delDDC\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"}],\"name\":\"delFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"pay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"}],\"name\":\"queryFee\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"recharge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"selfRecharge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorityProxyAddress\",\"type\":\"address\"}],\"name\":\"setAuthorityProxyAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"},{\"internalType\":\"uint32\",\"name\":\"amount\",\"type\":\"uint32\"}],\"name\":\"setFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ddcAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"settlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]";
    public static final String CHARGE_BIN = "60a06040523060805234801561001457600080fd5b50600054610100900460ff168061002e575060005460ff16155b6100955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff161580156100b7576000805461ffff19166101011790555b80156100c9576000805461ff00191690555b506080516120ca6100fa600039600081816104c3015281816105030152818161058c01526105cc01526120ca6000f3fe6080604052600436106100fd5760003560e01c8063715018a611610095578063c5837d8211610064578063c5837d821461026d578063c9c45a0f1461028d578063d213fe45146102c2578063ef18e3c9146102e2578063f2fde38b1461030257600080fd5b8063715018a6146101fb5780638129fc1c146102105780638a27a80d146102255780638da5cb5b1461024557600080fd5b80633659cfe6116100d15780633659cfe6146101885780634f1ef286146101a857806363569189146101bb57806370a08231146101db57600080fd5b80620b8f7014610102578063093f28e01461012457806318160ddd1461014457806336351c7c14610168575b600080fd5b34801561010e57600080fd5b5061012261011d366004611a09565b610322565b005b34801561013057600080fd5b5061012261013f366004611a3c565b6103a5565b34801561015057600080fd5b5060c9545b6040519081526020015b60405180910390f35b34801561017457600080fd5b50610122610183366004611a6f565b610441565b34801561019457600080fd5b506101226101a3366004611a09565b6104b8565b6101226101b6366004611b08565b610581565b3480156101c757600080fd5b506101226101d6366004611b99565b61063b565b3480156101e757600080fd5b506101556101f6366004611a09565b6106fb565b34801561020757600080fd5b5061012261073f565b34801561021c57600080fd5b50610122610775565b34801561023157600080fd5b50610122610240366004611a6f565b6107f0565b34801561025157600080fd5b506033546040516001600160a01b03909116815260200161015f565b34801561027957600080fd5b50610122610288366004611a09565b6108de565b34801561029957600080fd5b506102ad6102a8366004611a3c565b610980565b60405163ffffffff909116815260200161015f565b3480156102ce57600080fd5b506101226102dd366004611be9565b610a5d565b3480156102ee57600080fd5b506101226102fd366004611c02565b610ac8565b34801561030e57600080fd5b5061012261031d366004611a09565b610bc5565b6001600160a01b0381166103515760405162461bcd60e51b815260040161034890611c3e565b60405180910390fd5b610359610c5d565b6001600160a01b038116600081815260ca6020526040808220600101805460ff19169055517f0ba05d508af447342f624920545278b6e2d2320ee40cb9eff56b89d21e1b25e89190a250565b6001600160a01b0382166103cb5760405162461bcd60e51b815260040161034890611c3e565b6103d3610c5d565b6001600160a01b038216600081815260ca602090815260408083206001600160e01b0319861680855290835292819020805463ffffffff19169055519182527f2f93e067617701594eddb2443d90441c5bb959df555ae8e4d150f0a8bf8b006d910160405180910390a25050565b8061045e5760405162461bcd60e51b815260040161034890611c6b565b6104683383610d2a565b610473338383610e44565b6040518181526001600160a01b0383169033907f4ade20d82044693c0d3331ba1d2a482d103734f274166989491c8d30d3f2ecb1906020015b60405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105015760405162461bcd60e51b815260040161034890611ca0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610533610f36565b6001600160a01b0316146105595760405162461bcd60e51b815260040161034890611cec565b61056281610f64565b6040805160008082526020820190925261057e91839190610f8e565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105ca5760405162461bcd60e51b815260040161034890611ca0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105fc610f36565b6001600160a01b0316146106225760405162461bcd60e51b815260040161034890611cec565b61062b82610f64565b61063782826001610f8e565b5050565b6001600160a01b0383166106615760405162461bcd60e51b815260040161034890611c3e565b610669610c5d565b6001600160a01b038316600081815260ca602090815260408083206001808201805460ff191690911790556001600160e01b0319871680855290835292819020805463ffffffff191663ffffffff87169081179091558151938452918301919091527f929dc21675623ba3d42ef9e085962b7d88bf57ba159fe8f0a86d6785195e2acc910160405180910390a2505050565b60006001600160a01b0382166107235760405162461bcd60e51b815260040161034890611c3e565b506001600160a01b0316600090815260cb602052604090205490565b6033546001600160a01b031633146107695760405162461bcd60e51b815260040161034890611d38565b61077360006110d9565b565b600054610100900460ff168061078e575060005460ff16155b6107aa5760405162461bcd60e51b815260040161034890611d6d565b600054610100900460ff161580156107cc576000805461ffff19166101011790555b6107d461112b565b6107dc611192565b801561057e576000805461ff001916905550565b8061080d5760405162461bcd60e51b815260040161034890611c6b565b6001600160a01b0382163b1515801561084157506001600160a01b038216600090815260ca602052604090206001015460ff165b61088d5760405162461bcd60e51b815260206004820152601860248201527f6368617267653a206e6f742044444320636f6e747261637400000000000000006044820152606401610348565b610895610c5d565b6108a182335b83610e44565b6040518181526001600160a01b0383169033907fca2ce982d63c71a419517d389df253be4b0d6f4da85fe1491e49608b139ee0be906020016104ac565b6033546001600160a01b031633146109085760405162461bcd60e51b815260040161034890611d38565b6001600160a01b03811661095e5760405162461bcd60e51b815260206004820152601d60248201527f6368617267653a206175746820746865207a65726f20616464726573730000006044820152606401610348565b60cc80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0383166109a85760405162461bcd60e51b815260040161034890611c3e565b6001600160a01b038316600090815260ca602052604090206001015460ff16610a215760405162461bcd60e51b815260206004820152602560248201527f6368617267653a6464632070726f787920636f6e747261637420756e617661696044820152646c61626c6560d81b6064820152608401610348565b506001600160a01b038216600090815260ca602090815260408083206001600160e01b03198516845290915290205463ffffffff165b92915050565b80610a7a5760405162461bcd60e51b815260040161034890611c6b565b610a82610c5d565b610a8d60003361089b565b60405181815233906000907f4ade20d82044693c0d3331ba1d2a482d103734f274166989491c8d30d3f2ecb19060200160405180910390a350565b6001600160a01b038316610aee5760405162461bcd60e51b815260040161034890611c3e565b80610b325760405162461bcd60e51b815260206004820152601460248201527318da185c99d94e9a5b9d985b1a5908191918d25960621b6044820152606401610348565b336000610b3f8285610980565b905063ffffffff811615610b5e57610b5e85838363ffffffff16610e44565b604080516001600160e01b03198616815263ffffffff831660208201529081018490526001600160a01b0380841691908716907f750e56f33a72767cd99db8943f4d04ca416c55fb783003107a869f5d5062dbab9060600160405180910390a35050505050565b6033546001600160a01b03163314610bef5760405162461bcd60e51b815260040161034890611d38565b6001600160a01b038116610c545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610348565b61057e816110d9565b60cc546001600160a01b031663ed5cad643360006040518363ffffffff1660e01b8152600401610c8e929190611dd1565b602060405180830381865afa158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf9190611e0c565b6107735760405162461bcd60e51b815260206004820152602660248201527f4444433732313a6e6f742061206f70657261746f7220726f6c65206f722064696044820152651cd8589b195960d21b6064820152608401610348565b6001600160a01b038116610d8c5760405162461bcd60e51b8152602060048201526024808201527f6368617267653a20726563686172676520746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610348565b806001600160a01b0316826001600160a01b03161415610dee5760405162461bcd60e51b815260206004820181905260248201527f6368617267653a206e6f207265636861726765206973206e65636573736172796044820152606401610348565b610df882826111f9565b6106375760405162461bcd60e51b815260206004820152601e60248201527f6368617267653a206e6f207265636861726765207065726d697373696f6e00006044820152606401610348565b6001600160a01b03831615610eec5780610e5d846106fb565b1015610eb95760405162461bcd60e51b815260206004820152602560248201527f6368617267653a206163636f756e742062616c616e6365206973206e6f7420656044820152640dcdeeaced60db1b6064820152608401610348565b6001600160a01b038316600090815260cb602052604081208054839290610ee1908490611e44565b90915550610f049050565b8060c96000828254610efe9190611e5b565b90915550505b6001600160a01b038216600090815260cb602052604081208054839290610f2c908490611e5b565b9091555050505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6033546001600160a01b0316331461057e5760405162461bcd60e51b815260040161034890611d38565b6000610f98610f36565b9050610fa38461167b565b600083511180610fb05750815b15610fc157610fbf8484611720565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff166110d257805460ff191660011781556040516001600160a01b038316602482015261104090869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052611720565b50805460ff19168155611051610f36565b6001600160a01b0316826001600160a01b0316146110c95760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610348565b6110d285611802565b5050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1680611144575060005460ff16155b6111605760405162461bcd60e51b815260040161034890611d6d565b600054610100900460ff16158015611182576000805461ffff19166101011790555b61118a611842565b6107dc6118ac565b600054610100900460ff16806111ab575060005460ff16155b6111c75760405162461bcd60e51b815260040161034890611d6d565b600054610100900460ff161580156111e9576000805461ffff19166101011790555b6111f1611842565b6107dc611842565b60006112396040805160e0810182526060808252602082015290810160008152606060208201526040016000815260200160008152602001606081525090565b60cc5460405163fbcbc0f160e01b81526001600160a01b0386811660048301529091169063fbcbc0f190602401600060405180830381865afa158015611283573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ab9190810190611f0e565b5092935090918560408101606082016080830160a084018560018111156112d4576112d4611dbb565b60018111156112e5576112e5611dbb565b90528560018111156112f9576112f9611dbb565b600181111561130a5761130a611dbb565b905285905285600281111561132157611321611dbb565b600281111561133257611332611dbb565b9052949094525060019250611345915050565b8160800151600181111561135b5761135b611dbb565b14801561137d575060018160a00151600181111561137b5761137b611dbb565b145b6113c95760405162461bcd60e51b815260206004820152601960248201527f6368617267653a206163636f756e742069732066726f7a656e000000000000006044820152606401610348565b6114076040805160e0810182526060808252602082015290810160008152606060208201526040016000815260200160008152602001606081525090565b60cc5460405163fbcbc0f160e01b81526001600160a01b0386811660048301529091169063fbcbc0f190602401600060405180830381865afa158015611451573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114799190810190611f0e565b5092935090918560408101606082016080830160a084018560018111156114a2576114a2611dbb565b60018111156114b3576114b3611dbb565b90528560018111156114c7576114c7611dbb565b60018111156114d8576114d8611dbb565b90528590528560028111156114ef576114ef611dbb565b600281111561150057611500611dbb565b9052949094525060019250611513915050565b8160800151600181111561152957611529611dbb565b14801561154b575060018160a00151600181111561154957611549611dbb565b145b61158e5760405162461bcd60e51b815260206004820152601460248201527331b430b933b29d103a379034b990333937bd32b760611b6044820152606401610348565b6002826040015160028111156115a6576115a6611dbb565b14156115f45760405162461bcd60e51b815260206004820152601e60248201527f6368617267653a206e6f207265636861726765207065726d697373696f6e00006044820152606401610348565b60008260400151600281111561160c5761160c611dbb565b14806116235750606081015182516116239161190c565b8061167257506060808201519083015161163c9161190c565b80156116505750805182516116509161190c565b8015611672575060028160400151600281111561166f5761166f611dbb565b14155b95945050505050565b803b6116df5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610348565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b61177f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610348565b600080846001600160a01b03168460405161179a9190611fed565b600060405180830381855af49150503d80600081146117d5576040519150601f19603f3d011682016040523d82523d6000602084013e6117da565b606091505b5091509150611672828260405180606001604052806027815260200161206e602791396119ad565b61180b8161167b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff168061185b575060005460ff16155b6118775760405162461bcd60e51b815260040161034890611d6d565b600054610100900460ff161580156107dc576000805461ffff1916610101179055801561057e576000805461ff001916905550565b600054610100900460ff16806118c5575060005460ff16155b6118e15760405162461bcd60e51b815260040161034890611d6d565b600054610100900460ff16158015611903576000805461ffff19166101011790555b6107dc336110d9565b80518251600091849184911461192757600092505050610a57565b815160005b818110156119a05782818151811061194657611946612009565b602001015160f81c60f81b6001600160f81b03191684828151811061196d5761196d612009565b01602001516001600160f81b0319161461198e576000945050505050610a57565b806119988161201f565b91505061192c565b5060019695505050505050565b606083156119bc5750816119e6565b8251156119cc5782518084602001fd5b8160405162461bcd60e51b8152600401610348919061203a565b9392505050565b80356001600160a01b0381168114611a0457600080fd5b919050565b600060208284031215611a1b57600080fd5b6119e6826119ed565b80356001600160e01b031981168114611a0457600080fd5b60008060408385031215611a4f57600080fd5b611a58836119ed565b9150611a6660208401611a24565b90509250929050565b60008060408385031215611a8257600080fd5b611a8b836119ed565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611ad857611ad8611a99565b604052919050565b600067ffffffffffffffff821115611afa57611afa611a99565b50601f01601f191660200190565b60008060408385031215611b1b57600080fd5b611b24836119ed565b9150602083013567ffffffffffffffff811115611b4057600080fd5b8301601f81018513611b5157600080fd5b8035611b64611b5f82611ae0565b611aaf565b818152866020838501011115611b7957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600060608486031215611bae57600080fd5b611bb7846119ed565b9250611bc560208501611a24565b9150604084013563ffffffff81168114611bde57600080fd5b809150509250925092565b600060208284031215611bfb57600080fd5b5035919050565b600080600060608486031215611c1757600080fd5b611c20846119ed565b9250611c2e60208501611a24565b9150604084013590509250925092565b6020808252601390820152726368617267653a7a65726f206164647265737360681b604082015260600190565b6020808252818101527f6368617267653a206e6f207472616e73666572206973206e6563657373617279604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03831681526040810160038310611dff57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600060208284031215611e1e57600080fd5b815180151581146119e657600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015611e5657611e56611e2e565b500390565b60008219821115611e6e57611e6e611e2e565b500190565b60005b83811015611e8e578181015183820152602001611e76565b83811115611e9d576000848401525b50505050565b600082601f830112611eb457600080fd5b8151611ec2611b5f82611ae0565b818152846020838601011115611ed757600080fd5b611ee8826020830160208701611e73565b949350505050565b805160038110611a0457600080fd5b805160028110611a0457600080fd5b600080600080600080600060e0888a031215611f2957600080fd5b875167ffffffffffffffff80821115611f4157600080fd5b611f4d8b838c01611ea3565b985060208a0151915080821115611f6357600080fd5b611f6f8b838c01611ea3565b9750611f7d60408b01611ef0565b965060608a0151915080821115611f9357600080fd5b611f9f8b838c01611ea3565b9550611fad60808b01611eff565b9450611fbb60a08b01611eff565b935060c08a0151915080821115611fd157600080fd5b50611fde8a828b01611ea3565b91505092959891949750929550565b60008251611fff818460208701611e73565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561203357612033611e2e565b5060010190565b6020815260008251806020840152612059816040850160208701611e73565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e2fcc1f63553e3c317d2ff84b31885e0421f24465696d700b993e249a65c91864736f6c634300080b0033";

    /**
     * 721 contract info
     */
    public static final String DDC_721_ADDRESS = "0xad3B52B4F4bd9198DC69dD9cE4aC9846667461a2";
    public static final String DDC_721_ABI = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"EnterBlacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"ExitBlacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"SetNameAndSymbol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ddcURI\",\"type\":\"string\"}],\"name\":\"SetURI\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"ddcURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"freeze\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"ddcURI_\",\"type\":\"string\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_ddcURI\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorityProxyAddress\",\"type\":\"address\"}],\"name\":\"setAuthorityProxyAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"chargeProxyAddress\",\"type\":\"address\"}],\"name\":\"setChargeProxyAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"setNameAndSymbol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"ddcURI_\",\"type\":\"string\"}],\"name\":\"setURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"unFreeze\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]";
    public static final String DDC_721_BIN = "60a0604052306080523480156200001557600080fd5b50600054610100900460ff168062000030575060005460ff16155b620000985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000bb576000805461ffff19166101011790555b8015620000ce576000805461ff00191690555b50608051612bb46200010060003960008181610880015281816108c001528181610a710152610ab10152612bb46000f3fe60806040526004361061019c5760003560e01c8063715018a6116100ec578063c5837d821161008a578063d7a78db811610064578063d7a78db814610490578063e985e9c5146104b0578063f2fde38b146104d0578063f6dda936146104f057600080fd5b8063c5837d8214610430578063d0def52114610450578063d302b0dc1461047057600080fd5b80638da5cb5b116100c65780638da5cb5b146103bd57806395d89b41146103db578063a22cb465146103f0578063b88d4fde1461041057600080fd5b8063715018a6146103735780638129fc1c14610388578063862440e21461039d57600080fd5b80633659cfe6116101595780634f1ef286116101335780634f1ef286146102f25780635a446215146103055780636352211e1461032557806370a082311461034557600080fd5b80633659cfe61461029257806342966c68146102b257806344d891df146102d257600080fd5b806301ffc9a7146101a157806306fdde03146101d6578063081812fc146101f8578063095ea7b31461023057806323b872dd14610252578063293ec97c14610272575b600080fd5b3480156101ad57600080fd5b506101c16101bc36600461239d565b610510565b60405190151581526020015b60405180910390f35b3480156101e257600080fd5b506101eb610547565b6040516101cd9190612412565b34801561020457600080fd5b50610218610213366004612425565b6105d9565b6040516001600160a01b0390911681526020016101cd565b34801561023c57600080fd5b5061025061024b36600461245a565b610600565b005b34801561025e57600080fd5b5061025061026d366004612484565b610783565b34801561027e57600080fd5b506101eb61028d366004612425565b6107cb565b34801561029e57600080fd5b506102506102ad3660046124c0565b610875565b3480156102be57600080fd5b506102506102cd366004612425565b61093e565b3480156102de57600080fd5b506102506102ed3660046124c0565b610a10565b61025061030036600461257e565b610a66565b34801561031157600080fd5b506102506103203660046125cc565b610b20565b34801561033157600080fd5b50610218610340366004612425565b610bb1565b34801561035157600080fd5b506103656103603660046124c0565b610c25565b6040519081526020016101cd565b34801561037f57600080fd5b50610250610cab565b34801561039457600080fd5b50610250610ce1565b3480156103a957600080fd5b506102506103b8366004612626565b610d64565b3480156103c957600080fd5b506033546001600160a01b0316610218565b3480156103e757600080fd5b506101eb610e94565b3480156103fc57600080fd5b5061025061040b366004612665565b610ea3565b34801561041c57600080fd5b5061025061042b36600461269c565b610f83565b34801561043c57600080fd5b5061025061044b3660046124c0565b610ff2565b34801561045c57600080fd5b5061025061046b36600461257e565b611048565b34801561047c57600080fd5b5061025061048b366004612425565b611081565b34801561049c57600080fd5b506102506104ab366004612425565b6110f7565b3480156104bc57600080fd5b506101c16104cb366004612704565b61116b565b3480156104dc57600080fd5b506102506104eb3660046124c0565b6111d9565b3480156104fc57600080fd5b5061025061050b366004612737565b611271565b60006001600160e01b0319821663114e0e5360e21b148061054157506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060fb8054610556906127ab565b80601f0160208091040260200160405190810160405280929190818152602001828054610582906127ab565b80156105cf5780601f106105a4576101008083540402835291602001916105cf565b820191906000526020600020905b8154815290600101906020018083116105b257829003601f168201915b5050505050905090565b60006105e4826112b8565b50600090815260ff60205260409020546001600160a01b031690565b610608611315565b610611826113e8565b61061a816114c9565b610625335b83611528565b600061063082610bb1565b9050806001600160a01b0316836001600160a01b031614156106995760405162461bcd60e51b815260206004820181905260248201527f4444433732313a617070726f76616c20746f2063757272656e74206f776e657260448201526064015b60405180910390fd5b336001600160a01b03821614806106b557506106b5813361116b565b6107275760405162461bcd60e51b815260206004820152603760248201527f4444433732313a617070726f76652063616c6c6572206973206e6f74206f776e60448201527f6572206e6f7220617070726f76656420666f7220616c6c0000000000000000006064820152608401610690565b600082815260ff602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b61078b611315565b610794836113e8565b61079d826113e8565b6107a6816114c9565b6107b0838361157e565b6107bb335b82611600565b6107c68383836116a2565b505050565b60606107d6826112b8565b60008281526101016020526040902080546107f0906127ab565b80601f016020809104026020016040519081016040528092919081815260200182805461081c906127ab565b80156108695780601f1061083e57610100808354040283529160200191610869565b820191906000526020600020905b81548152906001019060200180831161084c57829003601f168201915b50505050509050919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108be5760405162461bcd60e51b8152600401610690906127e6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108f0611808565b6001600160a01b0316146109165760405162461bcd60e51b815260040161069090612832565b61091f81611836565b6040805160008082526020820190925261093b91839190611860565b50565b610946611315565b61094f816112b8565b610958336107b5565b600061096382610bb1565b600083815260ff6020526040902080546001600160a01b031916905590506001600160a01b038116600090815260fe602052604081208054600192906109aa908490612894565b9091555050600082815260fd6020526040902080546001600160a01b03191690556109d4826119ab565b60405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6033546001600160a01b03163314610a3a5760405162461bcd60e51b8152600401610690906128ab565b610a4381611a27565b61010480546001600160a01b0319166001600160a01b0392909216919091179055565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610aaf5760405162461bcd60e51b8152600401610690906127e6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ae1611808565b6001600160a01b031614610b075760405162461bcd60e51b815260040161069090612832565b610b1082611836565b610b1c82826001611860565b5050565b6033546001600160a01b03163314610b4a5760405162461bcd60e51b8152600401610690906128ab565b8151610b5d9060fb9060208501906122ee565b508051610b719060fc9060208401906122ee565b507fd150542982eaa18f20ceb10f524c418899e6a331a81ee4a70daa921f976fab3b60fb60fc604051610ba5929190612980565b60405180910390a15050565b600081815260fd60205260408120546001600160a01b0316806105415760405162461bcd60e51b815260206004820152602660248201527f4444433732313a6f776e657220717565727920666f72206e6f6e6578697374656044820152656e742064646360d01b6064820152608401610690565b60006001600160a01b038216610c8f5760405162461bcd60e51b815260206004820152602960248201527f4444433732313a62616c616e636520717565727920666f7220746865207a65726044820152686f206164647265737360b81b6064820152608401610690565b506001600160a01b0316600090815260fe602052604090205490565b6033546001600160a01b03163314610cd55760405162461bcd60e51b8152600401610690906128ab565b610cdf6000611a9c565b565b600054610100900460ff1680610cfa575060005460ff16155b610d165760405162461bcd60e51b8152600401610690906129a5565b600054610100900460ff16158015610d38576000805461ffff19166101011790555b610d40611aee565b610d48611b4d565b610d50611bb4565b801561093b576000805461ff001916905550565b610d6c611315565b610d75826114c9565b610d80335b83611600565b8051610dce5760405162461bcd60e51b815260206004820152601760248201527f4444433732313a43616e206e6f7420626520656d7074790000000000000000006044820152606401610690565b6000828152610101602052604090208054610de8906127ab565b159050610e375760405162461bcd60e51b815260206004820152601a60248201527f4444433732313a616c726561647920696e697469616c697a65640000000000006044820152606401610690565b6000828152610101602090815260409091208251610e57928401906122ee565b50817fee1bb82f380189104b74a7647d26f2f35679780e816626ffcaec7cafb7288e4682604051610e889190612412565b60405180910390a25050565b606060fc8054610556906127ab565b610eab611315565b610eb4826113e8565b610ebd3361061f565b6001600160a01b038216331415610f165760405162461bcd60e51b815260206004820152601860248201527f4444433732313a617070726f766520746f2063616c6c657200000000000000006044820152606401610690565b336000818152610100602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610f8b611315565b610f94846113e8565b610f9d836113e8565b610fa6826114c9565b610fb0848461157e565b610fb933610d7a565b610fc48484846116a2565b610fd084848484611c13565b610fec5760405162461bcd60e51b8152600401610690906129f3565b50505050565b6033546001600160a01b0316331461101c5760405162461bcd60e51b8152600401610690906128ab565b61102581611a27565b61010580546001600160a01b0319166001600160a01b0392909216919091179055565b611050611315565b611059826113e8565b6110623361061f565b60006101035460016110749190612a44565b90506107c6838284611d12565b611089611315565b611091611e2a565b61109a81611ef8565b600081815261010260205260409020805460ff19169055336001600160a01b03167faddb66f781fad31382e12b8ad189f90d41b9590625a6736ef67a2792f094874f826040516110ec91815260200190565b60405180910390a250565b6110ff611315565b611107611e2a565b611110816114c9565b600081815261010260205260409020805460ff191660011790556111313390565b6001600160a01b03167f027b0995c9aa454830a50ece99b9507432deb5f7ff0173efc4429282c1710a36826040516110ec91815260200190565b60006001600160a01b0383161580159061118d57506001600160a01b03821615155b6111a95760405162461bcd60e51b815260040161069090612a5c565b506001600160a01b0391821660009081526101006020908152604080832093909416825291909152205460ff1690565b6033546001600160a01b031633146112035760405162461bcd60e51b8152600401610690906128ab565b6001600160a01b0381166112685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610690565b61093b81611a9c565b611279611315565b611282836113e8565b61128c3384611528565b600061010354600161129e9190612a44565b90506112ab848285611d12565b610fd06000858385611c13565b600081815260fd60205260409020546001600160a01b031661093b5760405162461bcd60e51b81526020600482015260166024820152754444433732313a6e6f6e6578697374656e742064646360501b6044820152606401610690565b610105546001600160a01b031663470cf0e0336040516001600160e01b031960e084901b811682526001600160a01b0392909216600482015230602482015260003590911660448201526064016020604051808303816000875af1158015611381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a59190612a89565b610cdf5760405162461bcd60e51b81526020600482015260146024820152732222219b99189d3737903832b936b4b9b9b4b7b760611b6044820152606401610690565b6001600160a01b03811661140e5760405162461bcd60e51b815260040161069090612a5c565b610105546040516395c2a8d960e01b81526001600160a01b038381166004830152909116906395c2a8d990602401602060405180830381865afa158015611459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147d9190612a89565b61093b5760405162461bcd60e51b815260206004820152601e60248201527f4444433732313a6e6f74206120617661696c61626c65206163636f756e7400006044820152606401610690565b6114d2816112b8565b6000818152610102602052604090205460ff161561093b5760405162461bcd60e51b81526020600482015260136024820152724444433732313a64697361626c65642064646360681b6044820152606401610690565b6115328282611f60565b610b1c5760405162461bcd60e51b815260206004820181905260248201527f4444433732313a6f6e6c79206f6e207468652073616d6520706c6174666f726d6044820152606401610690565b6115888282611f60565b8061159857506115988282611fe0565b610b1c5760405162461bcd60e51b815260206004820152603360248201527f4444433732313a4f6e6c79206f6e6520706c6174666f726d206f722063726f736044820152721ccb5c1b185d199bdc9b48185c1c1c9bdd985b606a1b6064820152608401610690565b600061160b82610bb1565b9050806001600160a01b0316836001600160a01b031614806116465750826001600160a01b031661163b836105d9565b6001600160a01b0316145b806116565750611656818461116b565b6107c65760405162461bcd60e51b815260206004820152601d60248201527f4444433732313a6e6f74206f776e6572206e6f7220617070726f7665640000006044820152606401610690565b826001600160a01b03166116b582610bb1565b6001600160a01b03161461171a5760405162461bcd60e51b815260206004820152602660248201527f4444433732313a7472616e73666572206f66206464632074686174206973206e60448201526537ba1037bbb760d11b6064820152608401610690565b600081815260ff6020526040902080546001600160a01b03191690556001600160a01b038316600090815260fe6020526040812080546001929061175f908490612894565b90915550506001600160a01b038216600090815260fe6020526040812080546001929061178d908490612a44565b9091555050600081815260fd6020526040902080546001600160a01b0319166001600160a01b0384161790556117c2816119ab565b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6033546001600160a01b0316331461093b5760405162461bcd60e51b8152600401610690906128ab565b600061186a611808565b90506118758461201b565b6000835111806118825750815b156118935761189184846120c0565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff166119a457805460ff191660011781556040516001600160a01b038316602482015261191290869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526120c0565b50805460ff19168155611923611808565b6001600160a01b0316826001600160a01b03161461199b5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610690565b6119a4856121ab565b5050505050565b610104546001600160a01b031663ef18e3c9336040516001600160e01b031960e084901b811682526001600160a01b03929092166004820152600035909116602482015260448101849052606401600060405180830381600087803b158015611a1357600080fd5b505af11580156119a4573d6000803e3d6000fd5b6001600160a01b038116611a4d5760405162461bcd60e51b815260040161069090612a5c565b6001600160a01b0381163b61093b5760405162461bcd60e51b8152602060048201526015602482015274111110cdcc8c4e9b9bdd08184818dbdb9d1c9858dd605a1b6044820152606401610690565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1680611b07575060005460ff16155b611b235760405162461bcd60e51b8152600401610690906129a5565b600054610100900460ff16158015611b45576000805461ffff19166101011790555b610d506121eb565b600054610100900460ff1680611b66575060005460ff16155b611b825760405162461bcd60e51b8152600401610690906129a5565b600054610100900460ff16158015611ba4576000805461ffff19166101011790555b611bac6121eb565b610d50612255565b600054610100900460ff1680611bcd575060005460ff16155b611be95760405162461bcd60e51b8152600401610690906129a5565b600054610100900460ff16158015611c0b576000805461ffff19166101011790555b611b456121eb565b60006001600160a01b0384163b15611d0657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611c57903390899088908890600401612aa6565b6020604051808303816000875af1925050508015611c92575060408051601f3d908101601f19168201909252611c8f91810190612ae3565b60015b611cec573d808015611cc0576040519150601f19603f3d011682016040523d82523d6000602084013e611cc5565b606091505b508051611ce45760405162461bcd60e51b8152600401610690906129f3565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611d0a565b5060015b949350505050565b600082815260fd60205260409020546001600160a01b031615611d6f5760405162461bcd60e51b8152602060048201526015602482015274111110cdcc8c4e985b1c9958591e481b5a5b9d1959605a1b6044820152606401610690565b6001600160a01b038316600090815260fe60205260408120805460019290611d98908490612a44565b9091555050600082815260fd6020908152604080832080546001600160a01b0319166001600160a01b03881617905561010182529091208251611ddd928401906122ee565b50610103829055611ded826119ab565b60405182906001600160a01b038516906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050565b610105546001600160a01b031663ed5cad643360006040518363ffffffff1660e01b8152600401611e5c929190612b00565b602060405180830381865afa158015611e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9d9190612a89565b610cdf5760405162461bcd60e51b815260206004820152602660248201527f4444433732313a6e6f742061206f70657261746f7220726f6c65206f722064696044820152651cd8589b195960d21b6064820152608401610690565b611f01816112b8565b6000818152610102602052604090205460ff1661093b5760405162461bcd60e51b815260206004820152601760248201527f4444433732313a6e6f6e2d64697361626c6564206464630000000000000000006044820152606401610690565b61010554604051633a723d1760e01b81526001600160a01b03848116600483015283811660248301526000921690633a723d17906044015b602060405180830381865afa158015611fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd99190612a89565b9392505050565b6101055460405162c21e5560e11b81526001600160a01b038481166004830152838116602483015260009216906301843caa90604401611f98565b803b61207f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610690565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b61211f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610690565b600080846001600160a01b03168460405161213a9190612b3b565b600060405180830381855af49150503d8060008114612175576040519150601f19603f3d011682016040523d82523d6000602084013e61217a565b606091505b50915091506121a28282604051806060016040528060278152602001612b58602791396122b5565b95945050505050565b6121b48161201b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff1680612204575060005460ff16155b6122205760405162461bcd60e51b8152600401610690906129a5565b600054610100900460ff16158015610d50576000805461ffff1916610101179055801561093b576000805461ff001916905550565b600054610100900460ff168061226e575060005460ff16155b61228a5760405162461bcd60e51b8152600401610690906129a5565b600054610100900460ff161580156122ac576000805461ffff19166101011790555b610d5033611a9c565b606083156122c4575081611fd9565b8251156122d45782518084602001fd5b8160405162461bcd60e51b81526004016106909190612412565b8280546122fa906127ab565b90600052602060002090601f01602090048101928261231c5760008555612362565b82601f1061233557805160ff1916838001178555612362565b82800160010185558215612362579182015b82811115612362578251825591602001919060010190612347565b5061236e929150612372565b5090565b5b8082111561236e5760008155600101612373565b6001600160e01b03198116811461093b57600080fd5b6000602082840312156123af57600080fd5b8135611fd981612387565b60005b838110156123d55781810151838201526020016123bd565b83811115610fec5750506000910152565b600081518084526123fe8160208601602086016123ba565b601f01601f19169290920160200192915050565b602081526000611fd960208301846123e6565b60006020828403121561243757600080fd5b5035919050565b80356001600160a01b038116811461245557600080fd5b919050565b6000806040838503121561246d57600080fd5b6124768361243e565b946020939093013593505050565b60008060006060848603121561249957600080fd5b6124a28461243e565b92506124b06020850161243e565b9150604084013590509250925092565b6000602082840312156124d257600080fd5b611fd98261243e565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261250257600080fd5b813567ffffffffffffffff8082111561251d5761251d6124db565b604051601f8301601f19908116603f01168101908282118183101715612545576125456124db565b8160405283815286602085880101111561255e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561259157600080fd5b61259a8361243e565b9150602083013567ffffffffffffffff8111156125b657600080fd5b6125c2858286016124f1565b9150509250929050565b600080604083850312156125df57600080fd5b823567ffffffffffffffff808211156125f757600080fd5b612603868387016124f1565b9350602085013591508082111561261957600080fd5b506125c2858286016124f1565b6000806040838503121561263957600080fd5b82359150602083013567ffffffffffffffff8111156125b657600080fd5b801515811461093b57600080fd5b6000806040838503121561267857600080fd5b6126818361243e565b9150602083013561269181612657565b809150509250929050565b600080600080608085870312156126b257600080fd5b6126bb8561243e565b93506126c96020860161243e565b925060408501359150606085013567ffffffffffffffff8111156126ec57600080fd5b6126f8878288016124f1565b91505092959194509250565b6000806040838503121561271757600080fd5b6127208361243e565b915061272e6020840161243e565b90509250929050565b60008060006060848603121561274c57600080fd5b6127558461243e565b9250602084013567ffffffffffffffff8082111561277257600080fd5b61277e878388016124f1565b9350604086013591508082111561279457600080fd5b506127a1868287016124f1565b9150509250925092565b600181811c908216806127bf57607f821691505b602082108114156127e057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000828210156128a6576128a661287e565b500390565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8054600090600181811c90808316806128fa57607f831692505b602080841082141561291c57634e487b7160e01b600052602260045260246000fd5b83885260208801828015612937576001811461294857612973565b60ff19871682528282019750612973565b60008981526020902060005b8781101561296d57815484820152908601908401612954565b83019850505b5050505050505092915050565b60408152600061299360408301856128e0565b82810360208401526121a281856128e0565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526031908201527f4444433732313a7472616e7366657220746f206e6f6e2045524337323152656360408201527032b4bb32b91034b6b83632b6b2b73a32b960791b606082015260800190565b60008219821115612a5757612a5761287e565b500190565b6020808252601390820152724444433732313a7a65726f206164647265737360681b604082015260600190565b600060208284031215612a9b57600080fd5b8151611fd981612657565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612ad9908301846123e6565b9695505050505050565b600060208284031215612af557600080fd5b8151611fd981612387565b6001600160a01b03831681526040810160038310612b2e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b60008251612b4d8184602087016123ba565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204de278af7066059b5a1099058d7112e8ead6dc1064a6e75bd59835abdee6961164736f6c634300080b0033";

    /**
     * 1155 contract info
     */
    public static final String DDC_1155_ADDRESS = "0x061e59c74815994DAb4226a0D344711F18E0F418";
    public static final String DDC_1155_ABI = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"EnterBlacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"ExitBlacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ddcURI\",\"type\":\"string\"}],\"name\":\"SetURI\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ddcIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ddcIds\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ddcIds\",\"type\":\"uint256[]\"}],\"name\":\"burnBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"ddcURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"freeze\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ddcIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_ddcURI\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"ddcURIs\",\"type\":\"string[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeMintBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorityProxyAddress\",\"type\":\"address\"}],\"name\":\"setAuthorityProxyAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"chargeProxyAddress\",\"type\":\"address\"}],\"name\":\"setChargeProxyAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"ddcURI_\",\"type\":\"string\"}],\"name\":\"setURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ddcId\",\"type\":\"uint256\"}],\"name\":\"unFreeze\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]";
    public static final String DDC_1155_BIN = "60a0604052306080523480156200001557600080fd5b50600054610100900460ff168062000030575060005460ff16155b620000985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000bb576000805461ffff19166101011790555b8015620000ce576000805461ff00191690555b5060805161312a62000100600039600081816106a8015281816106e8015281816108b001526108f0015261312a6000f3fe60806040526004361061013f5760003560e01c80638129fc1c116100b6578063c5837d821161006f578063c5837d8214610388578063d302b0dc146103a8578063d7a78db8146103c8578063e985e9c5146103e8578063f242432a14610408578063f2fde38b1461042857600080fd5b80638129fc1c146102cb5780638da5cb5b146102e05780639dc29fac14610308578063a22cb46514610328578063b2dc5dc314610348578063b55bc6171461036857600080fd5b806344d891df1161010857806344d891df146102165780634e1273f4146102365780634f1ef286146102635780636357035514610276578063685e824714610296578063715018a6146102b657600080fd5b8062fdd58e1461014457806301ffc9a714610177578063293ec97c146101a75780632eb2c2d6146101d45780633659cfe6146101f6575b600080fd5b34801561015057600080fd5b5061016461015f366004612571565b610448565b6040519081526020015b60405180910390f35b34801561018357600080fd5b506101976101923660046125b1565b6104a1565b604051901515815260200161016e565b3480156101b357600080fd5b506101c76101c23660046125ce565b6104d8565b60405161016e919061263f565b3480156101e057600080fd5b506101f46101ef36600461279b565b610581565b005b34801561020257600080fd5b506101f4610211366004612844565b61069d565b34801561022257600080fd5b506101f4610231366004612844565b610766565b34801561024257600080fd5b5061025661025136600461285f565b6107bc565b60405161016e9190612964565b6101f4610271366004612977565b6108a5565b34801561028257600080fd5b506101f46102913660046129ba565b61095f565b3480156102a257600080fd5b506101f46102b1366004612acf565b610af0565b3480156102c257600080fd5b506101f4610c1e565b3480156102d757600080fd5b506101f4610c54565b3480156102ec57600080fd5b506097546040516001600160a01b03909116815260200161016e565b34801561031457600080fd5b506101f4610323366004612571565b610cd7565b34801561033457600080fd5b506101f4610343366004612b33565b610d40565b34801561035457600080fd5b506101f4610363366004612b6a565b610e2a565b34801561037457600080fd5b506101f4610383366004612bad565b610f19565b34801561039457600080fd5b506101f46103a3366004612844565b610fab565b3480156103b457600080fd5b506101f46103c33660046125ce565b611001565b3480156103d457600080fd5b506101f46103e33660046125ce565b611076565b3480156103f457600080fd5b50610197610403366004612c1e565b6110e9565b34801561041457600080fd5b506101f4610423366004612c51565b611156565b34801561043457600080fd5b506101f4610443366004612844565b611204565b60006001600160a01b0383166104795760405162461bcd60e51b815260040161047090612cb5565b60405180910390fd5b50600090815260fb602090815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b0319821663e43ae70960e01b14806104d257506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606104e38261129c565b600082815260fd6020526040902080546104fc90612ce3565b80601f016020809104026020016040519081016040528092919081815260200182805461052890612ce3565b80156105755780601f1061054a57610100808354040283529160200191610575565b820191906000526020600020905b81548152906001019060200180831161055857829003601f168201915b50505050509050919050565b6105896112fa565b610592856113ce565b61059b846113ce565b6105a585856114af565b6105af8533611532565b81518351146105d05760405162461bcd60e51b815260040161047090612d1e565b60005b835181101561062a5761061a86868684815181106105f3576105f3612d55565b602002602001015186858151811061060d5761060d612d55565b60200260200101516115a4565b61062381612d81565b90506105d3565b50836001600160a01b0316856001600160a01b03166106463390565b6001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610680929190612d9c565b60405180910390a461069633868686868661160a565b5050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156106e65760405162461bcd60e51b815260040161047090612dc1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661071861179e565b6001600160a01b03161461073e5760405162461bcd60e51b815260040161047090612e0d565b610747816117cc565b60408051600080825260208201909252610763918391906117f6565b50565b6097546001600160a01b031633146107905760405162461bcd60e51b815260040161047090612e59565b6107998161193a565b61010180546001600160a01b0319166001600160a01b0392909216919091179055565b606081518351146107df5760405162461bcd60e51b815260040161047090612d1e565b600083516001600160401b038111156107fa576107fa612652565b604051908082528060200260200182016040528015610823578160200160208202803683370190505b50905060005b835181101561089d5761086e85828151811061084757610847612d55565b602002602001015185838151811061086157610861612d55565b6020026020010151610448565b82828151811061088057610880612d55565b60209081029190910101528061089581612d81565b915050610829565b509392505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108ee5760405162461bcd60e51b815260040161047090612dc1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661092061179e565b6001600160a01b0316146109465760405162461bcd60e51b815260040161047090612e0d565b61094f826117cc565b61095b828260016117f6565b5050565b6109676112fa565b610970846113ce565b61097b335b856119b0565b815183511461099c5760405162461bcd60e51b815260040161047090612d1e565b6101005483516000906001600160401b038111156109bc576109bc612652565b6040519080825280602002602001820160405280156109e5578160200160208202803683370190505b50905060005b8551811015610a89576109ff600184612e8e565b925082828281518110610a1457610a14612d55565b602002602001018181525050610a7787838381518110610a3657610a36612d55565b6020026020010151888481518110610a5057610a50612d55565b6020026020010151888581518110610a6a57610a6a612d55565b6020026020010151611a10565b80610a8181612d81565b9150506109eb565b506001600160a01b0386166000336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8489604051610ad1929190612d9c565b60405180910390a4610ae83360008884898861160a565b505050505050565b610af86112fa565b610b0182611a9f565b610b0b8333611532565b8051610b595760405162461bcd60e51b815260206004820152601860248201527f444443313135353a43616e206e6f7420626520656d70747900000000000000006044820152606401610470565b600082815260fd602052604090208054610b7290612ce3565b159050610bc15760405162461bcd60e51b815260206004820152601b60248201527f444443313135353a616c726561647920696e697469616c697a656400000000006044820152606401610470565b600082815260fd602090815260409091208251610be0928401906124bc565b50817fee1bb82f380189104b74a7647d26f2f35679780e816626ffcaec7cafb7288e4682604051610c11919061263f565b60405180910390a2505050565b6097546001600160a01b03163314610c485760405162461bcd60e51b815260040161047090612e59565b610c526000611aff565b565b600054610100900460ff1680610c6d575060005460ff16155b610c895760405162461bcd60e51b815260040161047090612ea6565b600054610100900460ff16158015610cab576000805461ffff19166101011790555b610cb3611b51565b610cbb611bb0565b610cc3611c17565b8015610763576000805461ff001916905550565b610cdf6112fa565b610ce98233611532565b610cf38282611c76565b60408051828152600060208201819052916001600160a01b0385169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050565b610d486112fa565b610d51826113ce565b610d5b33836119b0565b336001600160a01b0383161415610dbe5760405162461bcd60e51b815260206004820152602160248201527f444443313135353a73657474696e6720617070726f76616c20666f722073656c6044820152603360f91b6064820152608401610470565b33600081815260fc602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610e326112fa565b610e3c8233611532565b600081516001600160401b03811115610e5757610e57612652565b604051908082528060200260200182016040528015610e80578160200160208202803683370190505b50905060005b8251811015610ec457610eb284848381518110610ea557610ea5612d55565b6020026020010151611c76565b80610ebc81612d81565b915050610e86565b5060006001600160a01b038416336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8585604051610f0c929190612d9c565b60405180910390a4505050565b610f216112fa565b610f2a846113ce565b610f3333610975565b6000610100546001610f459190612e8e565b9050610f5385828686611a10565b60408051828152602081018690526001600160a01b0387169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461069633600087848887611cef565b6097546001600160a01b03163314610fd55760405162461bcd60e51b815260040161047090612e59565b610fde8161193a565b61010280546001600160a01b0319166001600160a01b0392909216919091179055565b6110096112fa565b611011611dda565b61101a81611ea9565b600081815260ff60205260409020805460ff19169055336001600160a01b03167faddb66f781fad31382e12b8ad189f90d41b9590625a6736ef67a2792f094874f8260405161106b91815260200190565b60405180910390a250565b61107e6112fa565b611086611dda565b61108f81611a9f565b600081815260ff60205260409020805460ff191660011790556110af3390565b6001600160a01b03167f027b0995c9aa454830a50ece99b9507432deb5f7ff0173efc4429282c1710a368260405161106b91815260200190565b60006001600160a01b0383161580159061110b57506001600160a01b03821615155b6111275760405162461bcd60e51b815260040161047090612cb5565b506001600160a01b03918216600090815260fc6020908152604080832093909416825291909152205460ff1690565b61115e6112fa565b611167856113ce565b611170846113ce565b61117a85856114af565b6111848533611532565b611190858585856115a4565b836001600160a01b0316856001600160a01b03166111ab3390565b6001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6286866040516111ee929190918252602082015260400190565b60405180910390a4610696338686868686611cef565b6097546001600160a01b0316331461122e5760405162461bcd60e51b815260040161047090612e59565b6001600160a01b0381166112935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610470565b61076381611aff565b600081815260fe602052604090205460ff166107635760405162461bcd60e51b815260206004820152601760248201527f444443313135353a6e6f6e6578697374656e74206464630000000000000000006044820152606401610470565b610102546001600160a01b031663470cf0e0336040516001600160e01b031960e084901b811682526001600160a01b0392909216600482015230602482015260003590911660448201526064016020604051808303816000875af1158015611366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138a9190612ef4565b610c525760405162461bcd60e51b815260206004820152601560248201527422222198989a9a9d3737903832b936b4b9b9b4b7b760591b6044820152606401610470565b6001600160a01b0381166113f45760405162461bcd60e51b815260040161047090612cb5565b610102546040516395c2a8d960e01b81526001600160a01b038381166004830152909116906395c2a8d990602401602060405180830381865afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114639190612ef4565b6107635760405162461bcd60e51b815260206004820152601f60248201527f444443313135353a6e6f74206120617661696c61626c65206163636f756e74006044820152606401610470565b6114b98282611f11565b806114c957506114c98282611f91565b61095b5760405162461bcd60e51b815260206004820152603460248201527f444443313135353a4f6e6c79206f6e6520706c6174666f726d206f722063726f6044820152731cdccb5c1b185d199bdc9b48185c1c1c9bdd985b60621b6064820152608401610470565b61153c82826110e9565b806115585750816001600160a01b0316816001600160a01b0316145b61095b5760405162461bcd60e51b815260206004820152601e60248201527f444443313135353a6e6f74206f776e6572206e6f7220617070726f76656400006044820152606401610470565b6115ad82611a9f565b6115b8848383611fcc565b600082815260fb602090815260408083206001600160a01b03888116855292528083208054858103909155918616835282208054919284926115fb908490612e8e565b90915550610696905083612073565b6001600160a01b0384163b15610ae85760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061164e9089908990889088908890600401612f11565b6020604051808303816000875af1925050508015611689575060408051601f3d908101601f1916820190925261168691810190612f6f565b60015b61173557611695612f8c565b806308c379a014156116cf57506116aa612fa8565b806116b557506116d1565b8060405162461bcd60e51b8152600401610470919061263f565b505b60405162461bcd60e51b815260206004820152603360248201527f444443313135353a7472616e7366657220746f206e6f6e20455243313135355260448201527232b1b2b4bb32b91034b6b83632b6b2b73a32b960691b6064820152608401610470565b6001600160e01b0319811663bc197c8160e01b146117955760405162461bcd60e51b815260206004820181905260248201527f444443313135353a4552433131353552656365697665722072656a65637465646044820152606401610470565b50505050505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6097546001600160a01b031633146107635760405162461bcd60e51b815260040161047090612e59565b600061180061179e565b905061180b846120ef565b6000835111806118185750815b15611829576118278484612194565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661069657805460ff191660011781556040516001600160a01b03831660248201526118a890869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612194565b50805460ff191681556118b961179e565b6001600160a01b0316826001600160a01b0316146119315760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610470565b6106968561227f565b6001600160a01b0381166119605760405162461bcd60e51b815260040161047090612cb5565b6001600160a01b0381163b6107635760405162461bcd60e51b8152602060048201526016602482015275111110cc4c4d4d4e9b9bdd08184818dbdb9d1c9858dd60521b6044820152606401610470565b6119ba8282611f11565b61095b5760405162461bcd60e51b815260206004820152602160248201527f444443313135353a6f6e6c79206f6e207468652073616d6520706c6174666f726044820152606d60f81b6064820152608401610470565b611a1a83836122bf565b600083815260fb602090815260408083206001600160a01b038816845290915281208054849290611a4c908490612e8e565b9091555050600083815260fd602090815260409091208251611a70928401906124bc565b50600083815260fe60205260409020805460ff19166001179055610100839055611a9983612073565b50505050565b611aa88161129c565b600081815260ff602081905260409091205416156107635760405162461bcd60e51b8152602060048201526014602482015273444443313135353a64697361626c65642064646360601b6044820152606401610470565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1680611b6a575060005460ff16155b611b865760405162461bcd60e51b815260040161047090612ea6565b600054610100900460ff16158015611ba8576000805461ffff19166101011790555b610cc3612360565b600054610100900460ff1680611bc9575060005460ff16155b611be55760405162461bcd60e51b815260040161047090612ea6565b600054610100900460ff16158015611c07576000805461ffff19166101011790555b611c0f612360565b610cc36123ca565b600054610100900460ff1680611c30575060005460ff16155b611c4c5760405162461bcd60e51b815260040161047090612ea6565b600054610100900460ff16158015611c6e576000805461ffff19166101011790555b611ba8612360565b6001600160a01b038216611c9c5760405162461bcd60e51b815260040161047090612cb5565b611ca58161129c565b611caf828261242a565b600081815260fb602090815260408083206001600160a01b0386168452825280832083905583835260ff9091529020805460ff1916905561095b81612073565b6001600160a01b0384163b15610ae85760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611d339089908990889088908890600401613031565b6020604051808303816000875af1925050508015611d6e575060408051601f3d908101601f19168201909252611d6b91810190612f6f565b60015b611d7a57611695612f8c565b6001600160e01b0319811663f23a6e6160e01b146117955760405162461bcd60e51b815260206004820181905260248201527f444443313135353a4552433131353552656365697665722072656a65637465646044820152606401610470565b610102546001600160a01b031663ed5cad643360006040518363ffffffff1660e01b8152600401611e0c929190613076565b602060405180830381865afa158015611e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4d9190612ef4565b610c525760405162461bcd60e51b815260206004820152602760248201527f444443313135353a6e6f742061206f70657261746f7220726f6c65206f7220646044820152661a5cd8589b195960ca1b6064820152608401610470565b611eb28161129c565b600081815260ff6020819052604090912054166107635760405162461bcd60e51b815260206004820152601860248201527f444443313135353a6e6f6e2d64697361626c65642064646300000000000000006044820152606401610470565b61010254604051633a723d1760e01b81526001600160a01b03848116600483015283811660248301526000921690633a723d17906044015b602060405180830381865afa158015611f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8a9190612ef4565b9392505050565b6101025460405162c21e5560e11b81526001600160a01b038481166004830152838116602483015260009216906301843caa90604401611f49565b600081116120155760405162461bcd60e51b8152602060048201526016602482015275111110cc4c4d4d4e9a5b9d985b1a5908185b5bdd5b9d60521b6044820152606401610470565b806120208484610448565b101561206e5760405162461bcd60e51b815260206004820152601c60248201527f444443313135353a696e73756666696369656e742062616c616e6365000000006044820152606401610470565b505050565b610101546001600160a01b031663ef18e3c9336040516001600160e01b031960e084901b811682526001600160a01b03929092166004820152600035909116602482015260448101849052606401600060405180830381600087803b1580156120db57600080fd5b505af1158015610696573d6000803e3d6000fd5b803b6121535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610470565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6121f35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610470565b600080846001600160a01b03168460405161220e91906130b1565b600060405180830381855af49150503d8060008114612249576040519150601f19603f3d011682016040523d82523d6000602084013e61224e565b606091505b509150915061227682826040518060600160405280602781526020016130ce60279139612483565b95945050505050565b612288816120ef565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600081116123085760405162461bcd60e51b8152602060048201526016602482015275111110cc4c4d4d4e9a5b9d985b1a5908185b5bdd5b9d60521b6044820152606401610470565b600082815260fe602052604090205460ff161561095b5760405162461bcd60e51b8152602060048201526016602482015275111110cc4c4d4d4e985b1c9958591e481b5a5b9d195960521b6044820152606401610470565b600054610100900460ff1680612379575060005460ff16155b6123955760405162461bcd60e51b815260040161047090612ea6565b600054610100900460ff16158015610cc3576000805461ffff19166101011790558015610763576000805461ff001916905550565b600054610100900460ff16806123e3575060005460ff16155b6123ff5760405162461bcd60e51b815260040161047090612ea6565b600054610100900460ff16158015612421576000805461ffff19166101011790555b610cc333611aff565b60006124368383610448565b1161095b5760405162461bcd60e51b815260206004820152601c60248201527f444443313135353a696e73756666696369656e742062616c616e6365000000006044820152606401610470565b60608315612492575081611f8a565b8251156124a25782518084602001fd5b8160405162461bcd60e51b8152600401610470919061263f565b8280546124c890612ce3565b90600052602060002090601f0160209004810192826124ea5760008555612530565b82601f1061250357805160ff1916838001178555612530565b82800160010185558215612530579182015b82811115612530578251825591602001919060010190612515565b5061253c929150612540565b5090565b5b8082111561253c5760008155600101612541565b80356001600160a01b038116811461256c57600080fd5b919050565b6000806040838503121561258457600080fd5b61258d83612555565b946020939093013593505050565b6001600160e01b03198116811461076357600080fd5b6000602082840312156125c357600080fd5b8135611f8a8161259b565b6000602082840312156125e057600080fd5b5035919050565b60005b838110156126025781810151838201526020016125ea565b83811115611a995750506000910152565b6000815180845261262b8160208601602086016125e7565b601f01601f19169290920160200192915050565b602081526000611f8a6020830184612613565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b038111828210171561268d5761268d612652565b6040525050565b60006001600160401b038211156126ad576126ad612652565b5060051b60200190565b600082601f8301126126c857600080fd5b813560206126d582612694565b6040516126e28282612668565b83815260059390931b850182019282810191508684111561270257600080fd5b8286015b8481101561271d5780358352918301918301612706565b509695505050505050565b600082601f83011261273957600080fd5b81356001600160401b0381111561275257612752612652565b604051612769601f8301601f191660200182612668565b81815284602083860101111561277e57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156127b357600080fd5b6127bc86612555565b94506127ca60208701612555565b935060408601356001600160401b03808211156127e657600080fd5b6127f289838a016126b7565b9450606088013591508082111561280857600080fd5b61281489838a016126b7565b9350608088013591508082111561282a57600080fd5b5061283788828901612728565b9150509295509295909350565b60006020828403121561285657600080fd5b611f8a82612555565b6000806040838503121561287257600080fd5b82356001600160401b038082111561288957600080fd5b818501915085601f83011261289d57600080fd5b813560206128aa82612694565b6040516128b78282612668565b83815260059390931b85018201928281019150898411156128d757600080fd5b948201945b838610156128fc576128ed86612555565b825294820194908201906128dc565b9650508601359250508082111561291257600080fd5b5061291f858286016126b7565b9150509250929050565b600081518084526020808501945080840160005b838110156129595781518752958201959082019060010161293d565b509495945050505050565b602081526000611f8a6020830184612929565b6000806040838503121561298a57600080fd5b61299383612555565b915060208301356001600160401b038111156129ae57600080fd5b61291f85828601612728565b600080600080608085870312156129d057600080fd5b6129d985612555565b93506020808601356001600160401b03808211156129f657600080fd5b612a0289838a016126b7565b95506040880135915080821115612a1857600080fd5b818801915088601f830112612a2c57600080fd5b8135612a3781612694565b604051612a448282612668565b82815260059290921b840185019185810191508b831115612a6457600080fd5b8585015b83811015612a9c57803585811115612a805760008081fd5b612a8e8e89838a0101612728565b845250918601918601612a68565b50965050506060880135925080831115612ab557600080fd5b5050612ac387828801612728565b91505092959194509250565b600080600060608486031215612ae457600080fd5b612aed84612555565b92506020840135915060408401356001600160401b03811115612b0f57600080fd5b612b1b86828701612728565b9150509250925092565b801515811461076357600080fd5b60008060408385031215612b4657600080fd5b612b4f83612555565b91506020830135612b5f81612b25565b809150509250929050565b60008060408385031215612b7d57600080fd5b612b8683612555565b915060208301356001600160401b03811115612ba157600080fd5b61291f858286016126b7565b60008060008060808587031215612bc357600080fd5b612bcc85612555565b93506020850135925060408501356001600160401b0380821115612bef57600080fd5b612bfb88838901612728565b93506060870135915080821115612c1157600080fd5b50612ac387828801612728565b60008060408385031215612c3157600080fd5b612c3a83612555565b9150612c4860208401612555565b90509250929050565b600080600080600060a08688031215612c6957600080fd5b612c7286612555565b9450612c8060208701612555565b9350604086013592506060860135915060808601356001600160401b03811115612ca957600080fd5b61283788828901612728565b602080825260149082015273444443313135353a7a65726f206164647265737360601b604082015260600190565b600181811c90821680612cf757607f821691505b60208210811415612d1857634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526017908201527f444443313135353a6c656e677468206d69736d61746368000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612d9557612d95612d6b565b5060010190565b604081526000612daf6040830185612929565b82810360208401526122768185612929565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115612ea157612ea1612d6b565b500190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215612f0657600080fd5b8151611f8a81612b25565b6001600160a01b0386811682528516602082015260a060408201819052600090612f3d90830186612929565b8281036060840152612f4f8186612929565b90508281036080840152612f638185612613565b98975050505050505050565b600060208284031215612f8157600080fd5b8151611f8a8161259b565b600060033d1115612fa55760046000803e5060005160e01c5b90565b600060443d1015612fb65790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612fe557505050505090565b8285019150815181811115612ffd5750505050505090565b843d87010160208285010111156130175750505050505090565b61302660208286010187612668565b509095945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061306b90830184612613565b979650505050505050565b6001600160a01b038316815260408101600383106130a457634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600082516130c38184602087016125e7565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209dbf0e6b082e6cb87abb1ea76c5d8519c1d7ad09dd480788472f6afb6adc375d64736f6c634300080b0033";

    static {
        DDCContracts.add(new DDCContract("authority", ContractConfig.AUTHORITY_ABI, ContractConfig.AUTHORITY_BIN, ContractConfig.AUTHORITY_ADDRESS));
        DDCContracts.add(new DDCContract("charge", ContractConfig.CHARGE_ABI, ContractConfig.CHARGE_BIN, ContractConfig.CHARGE_ADDRESS));
        DDCContracts.add(new DDCContract("721", ContractConfig.DDC_721_ABI, ContractConfig.DDC_721_BIN, ContractConfig.DDC_721_ADDRESS));
        DDCContracts.add(new DDCContract("1155", ContractConfig.DDC_1155_ABI, ContractConfig.DDC_1155_BIN, ContractConfig.DDC_1155_ADDRESS));
    }
}
